from copy import copy, deepcopy

list1 = [1, 3, 5]

# 赋值：不会开辟新空间
list2 = list1
list1.append(7)
print(list2)
# id(): 查看变量的内存地址
print(id(list1), id(list2))

# 浅拷贝：（数据半共享） 会创建新对象，拷贝的是第一层的数据，嵌套层会指向原来的内存地址
list3 = [1, 2, [3, 4]]
list4 = copy(list3)
list3.append(5)
print(list4)
list3[2].append(6)
print(list4)
print(id(list3), id(list4))
print(id(list3[2]), id(list4[2]))

# 深拷贝：（数据完全不共享）和原来的对象没有关联了
list5 = [1, 2, [3, 4]]
list6 = deepcopy(list5)
print(id(list5[2]), id(list6[2]))
list5.append(5)
list5[2].append(6)
print(list5, list6)

